package transacoes;

import utils.*;
import data.*;
import java.util.*;

public class Salas {

  public boolean incluir (SalasDO sala) throws Exception{

     // validacao das regras de negocio
     if ( (isEmpty(sala.getidTipo())) || ( isEmpty(sala.getLotacao())) || ( isEmpty(sala.getPrecoDiaria()))) {
       return false;
     }

     // efetuando a transacao
     Transacao tr = new Transacao();
     try {

       tr.begin();
         SalasData sdata = new SalasData();
         sdata.incluir(sala, tr);
       tr.commit();
       return true;
       
     } catch(Exception e) {
         tr.rollback();
         System.out.println("erro ao incluir " + sala.getIdSalas());
         e.printStackTrace();
     }
     return false;
  } // incluir
  
  public boolean excluir (SalasDO sala) throws Exception{

     // validacao das regras de negocio
     if ( (isEmpty(sala.getIdSalas()))) {
       return false;
     }

     // efetuando a transacao
     Transacao tr = new Transacao();
     try {

       tr.begin();
         SalasData sdata = new SalasData();
         sdata.excluir(sala, tr);
       tr.commit();
       return true;
       
     } catch(Exception e) {
         tr.rollback();
         System.out.println("erro ao excluir " + sala.getIdSalas());
         e.printStackTrace();
     }
     return false;
  } // excluir

  public boolean atualizar(SalasDO sala) throws Exception {
     Transacao tr = new Transacao();
         try{
           // inserir validacoes de regras de negocio
           tr.begin();
             SalasData sdata = new SalasData();
             sdata.atualizar(sala, tr);
           tr.commit();
           return true;
         } catch (Exception e) {
           tr.rollback();
           System.out.println("erro ao atualizar" + sala.getNome());
           e.printStackTrace();
         }
         return false;
  } // atualizar

  public SalasDO buscar(int idSalas) throws Exception{
     Transacao tr = new Transacao();
         try{
           tr.beginReadOnly();
             SalasData sdata = new SalasData();
             SalasDO s = sdata.buscar(idSalas, tr);
           tr.commit();
           return c;
         } catch (Exception e) {
           tr.rollback();
           System.out.println("erro ao buscar" + idSalas);
           e.printStackTrace();
         }
         return null;
  } // buscar

  public Vector pesquisar(String Tipo) {
     if ( isEmpty(Tipo) )
        return null;

     Transacao tr = new Transacao();
     try {
             tr.beginReadOnly();
           SalasData sdata = new SalasData();
           Vector v = sdata.pesquisarPorTipo(Tipo, tr);
                 tr.commit();
                 return v;
     } catch(Exception e) {
         System.out.println("erro ao pesquisar " + Tipo);
         e.printStackTrace();
     }
     return null;
  } // pesquisar

  private boolean isEmpty(String s) {
     if (null == s)
       return true;
     if (s.length() == 0)
       return true;
     return false;
  }

  public static void main(String[] args) {
      Salas s = new Salas();
      SalasDO sala = new SalasDO();
      try {
            sala = s.buscar(6);
                System.out.println(sala.getTipo());
      } catch(Exception e) {
          e.printStackTrace();
      }
  } // main
} // Sala